Нейронная сеть Хопфилда
Нейронная сеть Хопфилда — полносвязная нейронная сеть с симметричной матрицей связей. В процессе работы динамика таких сетей сходится (конвергирует) к одному из положений равновесия. Эти положения равновесия являются локальными минимумами функционала, называемого энергией сети (в простейшем случае — локальными минимумами отрицательно определённой квадратичной формы на n-мерном кубе). Сеть может быть использована как автоассоциативная память, как фильтр, а также для решения некоторых задач оптимизации. В отличие от многих нейронных сетей, функционирующих до получения ответа через определённое количество тактов, сети Хопфилда функционируют до достижения равновесия, когда следующее состояние сети в точности равно предыдущему: начальное состояние является входным образом, а при равновесии получают выходной образ. Архитектура сети thumb|Схема сети Хопфилда с тремя нейронами Нейронная сеть Хопфилда состоит из N искусственных нейронов. Каждый нейрон системы может принимать одно из двух состояний (что аналогично выходу нейрона с пороговой функцией активации): x_i = \left\{\begin{matrix} 1, \\ -1\end{matrix}\right. Благодаря своей биполярной природе нейроны сети Хопфилда иногда называют спинами. Взаимодействие спинов сети описывается выражением: E= \frac{1}{2}\sum_{i,j=1}^{N}w_{ij}x_ix_j где w_{ij} элемент матрицы взаимодействий W , которая состоит из весовых коэффициентов связей между нейронами. В эту матрицу в процессе обучения записывается М'' «образов» — ''N-мерных бинарных векторов: S_m=(s_{m1},s_{m2},...,s_{mN}) В сети Хопфилда матрица связей является симметричной w_{ij}=w_{ji} , а диагональные элементы матрицы полагаются равными нулю ( w_{ii}=0 ), что исключает эффект воздействия нейрона на самого себя и является необходимым для сети Хопфилда, но не достаточным условием, устойчивости в процессе работы сети. Достаточным является асинхронный режим работы сети. Подобные свойства определяют тесную связь с реальными физическими веществами называемыми спиновыми стеклами. Обучение сети Алгоритм обучения сети Хопфилда имеет существенные отличия в сравнении с такими классическими алгоритмами обучения перцептронов как метод коррекции ошибки или метод обратного распространения ошибки. Отличие заключается в том, что вместо последовательного приближения к нужному состоянию с вычислением ошибок, все коэффициенты матрицы рассчитываются по одной формуле, за один цикл, после чего сеть сразу готова к работе. Вычисление коэффициентов базируется на следующем правиле: для всех запомненных образов X_i матрица связи должна удовлетворять уравнению X_i^T=WX_i поскольку именно при этом условии состояния сети X_i будут устойчивы - попав в такое состояние, сеть в нем и останется. Некоторые авторы относят сеть Хопфилда к обучению без учителя. Но это неверно, т.к. обучение без учителя предполагает отсутствие информации о том, к каким классам нужно относить стимулы. Для сети Хопфилда без этой информации нельзя настроить весовые коэффициенты, поэтому здесь можно говорить лишь о том, что такую сеть можно отнести к классу оптимизирующих сетей (фильтров). Отличительной особенностью фильтров является то, что матрица весовых коэффициентов настраивается детерминированным алгоритмом раз и навсегда, и затем весовые коэффициенты больше не изменяются. Это может быть удобно для физического воплощения такого устройства, т.к. на схемотехническом уровне реализовать устройство с переменными весовыми коэффициентами на порядок сложнее. Примером фильтра без обратных связей может служить алгоритм CC4 (Cornel classification), автором которого является S.Kak. В сети Хопфилда есть обратные связи и из-за этого нужно решать проблему устойчивости. Веса между нейронами в сети Хопфилда могут рассматриваться в виде матрицы взаимодействий W. В работе Cohen M. A., Grossberg S. G. 1983. Absolute stability of global pattern formation and parallel memory storage by compatitive neural networks. IEEE Transactions on Systems, Man and Cybernetics 13:815-26. показано, что сеть с обратными связями является устойчивой, если ее матрица симметрична и имеет нули на главной диагонали. Имеется много устойчивых систем, например, все сети прямого распространения, а так же современные рекуррентные сети Джордана и Элмана, для которых не обязательно выполнять условие на симметрию. Но это происходит вследствие того, что на обратные связи наложены другие ограничения. В случае сети Хопфилда условие симметричности является необходимым, но не достаточным, в том смысле, что на достижение устойчивого состояния влияет еще и режим работы сети. Ниже будет показано, что только асинхронный режим работы сети гарантирует достижение устойчивого состояния сети, в синхронном случае возможно бесконечное переключение между двумя разными состояниями (такая ситуация называется динамическим аттрактором, в то время как устойчивое состояние принято называть статическим аттрактором). Запоминаемые векторы должны иметь бинарный вид. После этого происходит расчет весовых коэффициентов по следующей формуле : w_{ij}=\frac{1}{N}\sum_{d=1..m}X_{id}X_{jd} где N - размерность векторов, m – число запоминаемых выходных векторов; d – номер запоминаемого выходного вектора; X_{ij} – i-я компонента запоминаемого выходного j-го вектора. Это выражение может стать более ясным, если заметить, что весовая матрица W может быть найдена вычислением внешнего произведения каждого запоминаемого вектора с самим собой и суммированием матриц, полученных таким образом. Это может быть записано в виде W=\frac{1}{N}\sum_{i}X_{i}^{T}X_{i} где X_i – i-й запоминаемый вектор-строка. Расчет этих весовых коэффициентов и называется обучением сети. Как только веса заданы, сеть может быть использована для получения запомненного выходного вектора по данному входному вектору, который может быть частично неправильным или неполным. Для этого выходам сети сначала придают значения этого начального вектора. Затем сеть последовательно меняет свои состояния согласно формуле: X_{i+1}^T=F(WX_i) где F - активационная функция, X_i и X_{i+1} - текущее и следующее состояния сети, до тех пор, пока состояния X_i и X_{i+1} не совпадут (или, в случае синхронного режима работы, не совпадут состояния X_{i-1} с X_{i+1} и одновременно X_{i-2} с X_i ). Именно этот процесс называется конвергенцией сети. Полученное устойчивое состояние X_i (статический аттрактор), или, возможно, в синхронном случае пара { X_i, X_{i+1} } (динамический аттрактор), является ответом сети на данный входной образ. Работа сети в режиме фильтрации (восстановление повреждённых образов) frame|right|Пороговая функция, реализуемая нейроном сети Хопфилда. Так как сети с обратными связями имеют пути, передающие сигналы от выходов к входам, то отклик таких сетей является динамическим, т. е. после приложения нового входа вычисляется выход и, передаваясь по сети обратной связи, модифицирует вход. Затем выход повторно вычисляется, и процесс повторяется снова и снова. Для устойчивой сети последовательные итерации приводят к все меньшим изменениям выхода, пока в конце концов выход не становится постоянным. Для некоторых сетей процесс никогда не заканчивается, такие сети называют неустойчивыми. Проблема устойчивости будет рассмотрена в следующем разделе, а здесь мы рассмотрим основной цикл работы сети. Как только веса заданы, сеть может быть использована для получения запомненного выходного вектора по данному входному вектору, который может быть частично неправильным или неполным. Для этого выходам сети сначала придают значения этого начального вектора. Затем сеть последовательно меняет свои состояния согласно формуле: ~X(t+1)^T=F(WX(t)) где F - активационная функция, X(t) и X(t+1) - текущее и следующее состояния сети, до тех пор, пока состояния X(t) и X(t+1) не совпадут (или, в случае синхронного режима работы, не совпадут состояния X(t-1) с X(t+1) и одновременно X(t-2) с X(t) ). Именно этот процесс называется конвергенцией сети. Это же можно описать так называемым локальным полем a_{i} действующим на нейрон x_{i} со стороны всех остальных нейронов сети: a_{i}(t)=\sum_{j=1,j\neq \;i}^{N}w_{ij}x_j(t-1) . После расчета локального поля нейрона a_{i} (t) это значение используется для расчета значения выхода через функцию активации, которая в данном случае является пороговой (с нулевым порогом). Соответственно, значение выхода нейрона i в текущий момент времени x_i(t) расчитывается по формуле: x_i(t) = sign(\sum_{j=1, j\neq \;i}^{N} w_{ij} x_j(t-1)) , где w_{ij} - весовой коэффициента между нейронами i и j, x_j(t-1) - значения выходов нейрона j в предыдущий момент времени. Во время работы сети Хопфилда признаком нахождения решения является момент, когда достигается аттрактор, статический (когда на каждом следующем шаге повторяется устойчивое состояние X(t) ) или, возможно, динамический (когда до бесконечности чередуются два разных состояния { X(t), X(t+1) }). Это конечное состояние сети и является ее реакцией на данный образ. Обычно ответом является такое устойчивое состояние, которое совпадает с одним из запомненных при обучении векторов, однако при некоторых условиях (в частности, при слишком большом количестве запомненных образов) результатом работы может стать так называемый ложный аттрактор ("химера"), состоящий из нескольких частей разных запомненных образов, а также в синхронном режиме сеть может прийти к динамическому аттрактору. Обе эти ситуации в общем случае являются нежелательными, поскольку не соответствуют ни одному запомненному вектору - а соответственно, не определяют класс, к которому сеть отнесла входной образ. Для сети Хопфилда могут существовать две модификации отличающиеся по времени передачи сигнала: асинхронный и синхронный режимы. Синхронный режим работы сети Если работа сети моделируется на одном процессоре, то при синхронном режиме последовательно просматриваются нейроны, однако их состояния запоминаются отдельно и не меняются до тех пор, пока не будут пройдены все нейроны сети. Когда все нейроны просмотрены, их состояния одновременно (т.е. синхронно, отсюда и название) меняются на новые. Таким образом, достигается моделирование параллельной работы последовательным алгоритмом. При реально параллельном моделировании, этот режим фактически означает, что время передачи \tau_{ij} для каждой связи между элементами u_i и u_j одинаковое для каждой связи, что приводит к параллельной работе всех связей, они одновременно меняют свои состояния, основываясь только на предыдущем моменте времени. Наличие таких синхронных тактов, которые можно легко выделить и приводит к пониманию синхронного режима. При синхронном режиме возможно (хотя и далеко не всегда наблюдается) бесконечное чередование двух состояний с разной энергией - так называемый динамический аттрактор. Поэтому синхронный режим практически для сети Хопфилда не используется, и рассматривается лишь как основа для понимания более сложного асинхронного режима. Асинхронный режим работы сети Если моделировать работу сети как последовательный алгоритм, то в асинхронном режиме работы состояния нейронов в следующий момент времени меняются последовательно: вычисляется локальное поле для первого нейрона в момент t, определяется его реакция, и нейрон устанавливается в новое состояние (которое соответствует его выходу в момент t+1), потом вычисляется локальное поле для второго нейрона с учетом нового состояния первого, меняется состояние второго нейрона, и так далее - состояние каждого следующего нейрона вычисляется с учетом всех изменений состояний рассмотренных ранее нейронов. По сути при последовательной реализации сети Хопфилда явно не видно в чем заключается асинхронность, но это видно если сеть Хопфилда реализовать с параллельными вычислениями. В этом случае асинхронный режим сети Хопфилда упрощен, и носит частный случай по сравнению с общим видом асинхронных сетей, где время передачи \tau_{ij} для каждой связи между элементами u_i и u_j свое, но постоянное. Чтобы рассмотреть работу сети при параллельной реализации, необходимо ввести понятие такта - как минимальное время за которое происходит передача сигнала по связи, т.е. при \tau_{ij} = 1 . Тогда за промежуток времени между t и (t+1) происходит определенное количество тактов N. И именно в пределах времени из N тактов происходит асинхроность протекания сигналов и выполнения расчетов. То есть, например, когда нужно расчитать состояние нейрона №3 необходимо расчитать состояния нейрона №1 и состояния нейрона №2 и умножить это на соответствующие веса w13 и w23. Но оказывается, для того чтобы расчитать состояние нейрона №2 нам нужно знать обновленное состояние нейрона №1 и старое состояние нейрона №3, умножить их на веса w12 и w32. Понятно, что физически не возможно расчитать состояние нейрона №1 и состояние нейрона №2 за одно и то же время, т.к. состояние нейрона №2 зависит от состония нейрона №1. Поэтому связь между нейроном №1 и нейроном №3 имеете время передачи \tau_{ij} = 2 , и достигает нейрона №3 за два такта. Именное такое разное время передачи \tau_{ij} и позволяет говорить о сети Хопфилда как о сети с ассинхроным режимом. В асинхронном режиме невозможен динамический аттрактор - вне зависимости от количества запомненных образов и начального состояния, сеть непременно придет к устойчивому состоянию (статическому аттрактору). Пример востановления повреждённого изображения Если во время обучения сформировать матрицу весовых коэффициентов (межнейронных связей) на основании эталонных бинарных векторов, то нейронная сеть в процессе работы под действием описанных выше полей будет менять состояния нейронов до тех пор, пока не перейдет к одному из устойчивых состояний. Пусть имеется нейронная сеть размерностью N=100 , в матрицу связей записан набор черно-белых картинок (-1 — черный цвет, +1 — белый), среди которых есть изображение собачки (рис 1б). Если установить начальное состояние сети близким к этому вектору (рис. 1а), то в ходе динамики нейронная сеть восстановит исходное изображение (рис. 1б). В этом смысле можно говорить о том, что сеть Хопфилда решает задачу распознавания образов (хотя строго говоря, полученное эталонное изображение еще нужно превратить в номер класса, что в некоторых случаях может быть весьма вычислительно емкой задачей). Изображение:HopfieldDogNoised.jpg Изображение:HopfieldDog.jpg Рис.1а Рис.1б Устойчивость сети в процессе работы Принципиальная разница между двумя режимами работы сети состоит в том, что в асинхронном случае сеть обязательно придет к одному устойчивому состоянию. При синхронном же возможны ситуации с бесконечным циклическим переходом между двумя разными состояниями. Определить устойчиво или нет состояние нейрона можно на основании, так называемой искусственной энергии нейрона в данном поле E_i=-s_ih_i . Если знак выхода (+1 или -1) нейрона совпадает с направлением локального поля ( E_i<0 ), то его положение энергетически устойчиво и в последующий момент времени состояние нейрона остается неизменным. В противном случае ( E_i>0 ) положение нейрона неустойчиво и он меняет свой знак, переходя в состояние s_i(t+1)=-s_i(t) с энергией E_i(t+1) < E_i(t) . Устойчивость при асинхроном способе достигается потому, что выполняется условие на общую энергию сети E(t+1) \leq E(t) , в синхронном случае условие несколько изменяется, а именно: E(t+1) \leq E(t-1) . В ситуации когда происходит бесконечные циклические переходы энергия двух разных состоянияй соответственно равна E(t) и E(t+1) . При этом состояния t+1 и t-1 , а также t и t+2 — совпадают. Если образуется такое состояние, то его называется динамическим аттрактором. Если же совпадают состояния t и t+1 , аттрактор называют статическим. В большинстве случаев динамические аттракторы являются нежелательными, так как не соответствуют какому-либо определенному ответу сети. Ассоциативная память Сеть с обратной связью формирует ассоциативную память, в данном случае сеть Хопфилда можно отнести к автоассоциативной памяти. То есть такой, которая может завершить или исправить образ, но не может ассоциировать полученный образ с другим образом. Чтобы организовать устойчивую автоассоциативную память с помощью сети с обратными связями, веса должны выбираться так, чтобы образовывать энергетические минимумы в нужных вершинах единичного гиперкуба. Задачи минимизации Однако обработка визуальных образов (фильтрация и ассоциативная память) — не единственная область применения модели Хопфилда. Динамическая процедура, описанная выше, на каждом шаге понижает значение энергии нейронной сети. Это позволяет решать комбинаторные задачи оптимизации, если они могут быть сформулированы как задачи минимизации энергии. Ограничения сети К сожалению, у нейронной сети Хопфилда есть ряд недостатков. 1. Относительно небольшой объем памяти, величину которого можно оценить выражением: M\approx \;\frac{N}{2\log_2 N} Попытка записи большего числа образов приводит к тому, что нейронная сеть перестает их распознавать. 2. Достижение устойчивого состояния не гарантирует правильный ответ сети. Это происходит из-за того, что сеть может сойтись к так называемым ложным аттракторам, иногда называемым "химерой" (как правило, химеры склеены из фрагментов различных образов). См. также * Перцептрон * Рекуррентные нейронные сети Примечания Литература *''J. J. Hopfield,'' «Neural networks and physical systems with emergent collective computational abilities», Proceedings of National Academy of Sciences, vol. 79 no. 8 pp. 2554—2558, April 1982. PNAS Reprint (Abstract) PNAS Reprint (PDF) * * * *''McEliece R.J., Posner E.C., Rodemich E.R., Venkatesh S.S., The capacity of the Hopfield associative memory, IEEE Transactions on Information Theory, Volume 33, Issue 4 (July 1987), 461-482. *''B.V.Kryzhanovsky, L.B.Litinskii, A.L.Mikaelian. «Vector-neuron models of associative memory», Proc. of Int. Joint Conference on Neural Networks IJCNN-04, Budapest-2004, pp.909-1004. *''B.V.Kryzhanovsky, B.M.Magomedov, A.L.Mikaelian.'' «A Domain model of neural network», Doklady Mathematics vol.71, pp.310-314 (2005). Категория:Нейросети